package main

import "fmt"

type CustomType struct {
}

func main() {

	var d interface{}
	// var e byte = 1
	d = 1
	switch t := d.(type) {
	case byte:
		fmt.Println("d is byte type, ", t)
	case *byte:
		fmt.Println("d is byte point type, ", t)
	case *int:
		fmt.Println("d is int type, ", t)
	case *string:
		fmt.Println("d is string type, ", t)
	case *CustomType:
		fmt.Println("d is CustomType pointer type, ", t)
	case CustomType:
		fmt.Println("d is CustomType type, ", t)
	default:
		fmt.Println("d is unknown type, ", t)
	}
}
